//给定一个区间的集合 intervals ，其中 intervals[i] = [starti, endi] 。返回 需要移除区间的最小数量，使剩余区间互不重
//叠 。
//
//
//
// 示例 1:
//
//
//输入: intervals = [[1,2],[2,3],[3,4],[1,3]]
//输出: 1
//解释: 移除 [1,3] 后，剩下的区间没有重叠。
//
//
// 示例 2:
//
//
//输入: intervals = [ [1,2], [1,2], [1,2] ]
//输出: 2
//解释: 你需要移除两个 [1,2] 来使剩下的区间没有重叠。
//
//
// 示例 3:
//
//
//输入: intervals = [ [1,2], [2,3] ]
//输出: 0
//解释: 你不需要移除任何区间，因为它们已经是无重叠的了。
//
//
//
//
// 提示:
//
//
// 1 <= intervals.length <= 10⁵
// intervals[i].length == 2
// -5 * 10⁴ <= starti < endi <= 5 * 10⁴
//
//
// Related Topics 贪心 数组与矩阵 动态规划 排序 👍 962 👎 0


//leetcode submit region begin(Prohibit modification and deletion)
function eraseOverlapIntervals(intervals: number[][]): number {

    let res : number = 0
    intervals.sort((a,b) => {
        return a[1] - b[1]
    })
    let temp : number[] = [intervals[0][0], intervals[0][1]]
    for (let i = 1; i < intervals.length; i ++) {
        //? 现在这个数组的最小大于等于前面的最大 满足条件不删除
        if (intervals[i][0] >= temp[1]) {
            //? 更新不重叠范围
            temp = [temp[0], intervals[i][1]]
        }
        else {
            res ++
        }
    }
    return res
};
//leetcode submit region end(Prohibit modification and deletion)
